package request

import (
        "topsdk/util"
    )

type TaobaoMiniappTemplateUpdateappRequest struct {
    /*
        要更新的投放端,目前可投放： taobao(淘宝),tmall(天猫)     */
    Clients  *[]string `json:"clients" required:"true" `
    /*
        应用id，如果应用在对应端上已有的最新版本所使用的模板id,模板version和extjson，与本次入参一致，则认为不需要更新，返回已有的版本。     */
    AppId  *string `json:"app_id" required:"true" `
    /*
        扩展信息。线上版本使用的template_id与传入的template_id一致时，可不填。     */
    ExtJson  *string `json:"ext_json,omitempty" required:"false" `
    /*
        模板id     */
    TemplateId  *string `json:"template_id" required:"true" `
    /*
        模板版本     */
    TemplateVersion  *string `json:"template_version" required:"true" `
    /*
        Logo更新，1月5次     */
    Icon  *string `json:"icon,omitempty" required:"false" `
    /*
        描述更新，1年5次     */
    Desc  *string `json:"desc,omitempty" required:"false" `
    /*
        简称更新，1年5次     */
    Alias  *string `json:"alias,omitempty" required:"false" `
}

func (s *TaobaoMiniappTemplateUpdateappRequest) SetClients(v []string) *TaobaoMiniappTemplateUpdateappRequest {
    s.Clients = &v
    return s
}
func (s *TaobaoMiniappTemplateUpdateappRequest) SetAppId(v string) *TaobaoMiniappTemplateUpdateappRequest {
    s.AppId = &v
    return s
}
func (s *TaobaoMiniappTemplateUpdateappRequest) SetExtJson(v string) *TaobaoMiniappTemplateUpdateappRequest {
    s.ExtJson = &v
    return s
}
func (s *TaobaoMiniappTemplateUpdateappRequest) SetTemplateId(v string) *TaobaoMiniappTemplateUpdateappRequest {
    s.TemplateId = &v
    return s
}
func (s *TaobaoMiniappTemplateUpdateappRequest) SetTemplateVersion(v string) *TaobaoMiniappTemplateUpdateappRequest {
    s.TemplateVersion = &v
    return s
}
func (s *TaobaoMiniappTemplateUpdateappRequest) SetIcon(v string) *TaobaoMiniappTemplateUpdateappRequest {
    s.Icon = &v
    return s
}
func (s *TaobaoMiniappTemplateUpdateappRequest) SetDesc(v string) *TaobaoMiniappTemplateUpdateappRequest {
    s.Desc = &v
    return s
}
func (s *TaobaoMiniappTemplateUpdateappRequest) SetAlias(v string) *TaobaoMiniappTemplateUpdateappRequest {
    s.Alias = &v
    return s
}

func (req *TaobaoMiniappTemplateUpdateappRequest) ToMap() map[string]interface{} {
    paramMap := make(map[string]interface{})
    if(req.Clients != nil) {
        paramMap["clients"] = util.ConvertBasicList(*req.Clients)
    }
    if(req.AppId != nil) {
        paramMap["app_id"] = *req.AppId
    }
    if(req.ExtJson != nil) {
        paramMap["ext_json"] = *req.ExtJson
    }
    if(req.TemplateId != nil) {
        paramMap["template_id"] = *req.TemplateId
    }
    if(req.TemplateVersion != nil) {
        paramMap["template_version"] = *req.TemplateVersion
    }
    if(req.Icon != nil) {
        paramMap["icon"] = *req.Icon
    }
    if(req.Desc != nil) {
        paramMap["desc"] = *req.Desc
    }
    if(req.Alias != nil) {
        paramMap["alias"] = *req.Alias
    }
    return paramMap
}

func (req *TaobaoMiniappTemplateUpdateappRequest) ToFileMap() map[string]interface{} {
    fileMap := make(map[string]interface{})
    return fileMap
}